package top.whysu.edevice.dao.relative;

import top.whysu.edevice.po.relative.RelativeAccountRolePO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 账号-角色关联表 Mapper 接口
 */
public interface RelativeAccountRoleDao {

    /**
     * 通过ID查询
     *
     * @param id 主键id
     * @return 对象
     */
    RelativeAccountRolePO selectById(BigDecimal id);

    /**
     * 查询集合
     *
     * @return 集合
     */
    List<RelativeAccountRolePO> selectList();

    /**
     * 插入
     *
     * @param relativeAccountRolePO 关联关系
     * @return 影响行数
     */
    int insert(RelativeAccountRolePO relativeAccountRolePO);

    /**
     * 更新
     *
     * @param relativeAccountRolePO 关联关系
     * @return 影响行数
     */
    int update(RelativeAccountRolePO relativeAccountRolePO);

    /**
     * 删除
     *
     * @param id 主键
     * @return 影响行数
     */
    int delete(BigDecimal id);

    /**
     * 删除对象（根据账号主键）
     *
     * @param accountId
     * @return
     */
    int deleteByAccountId(BigDecimal accountId);

    /**
     * 删除对象（根据角色主键）
     *
     * @param roleId
     * @return
     */
    int deleteByRoleId(BigDecimal roleId);

    /**
     * 获取对象（根据账号主键）
     *
     * @param accountId
     * @return
     */
    List<RelativeAccountRolePO> selectByAccountId(BigDecimal accountId);

    /**
     * 获取对象（根据角色主键）
     *
     * @param roleId
     * @return
     */
    List<RelativeAccountRolePO> selectByRoleId(BigDecimal roleId);

    /**
     * 更新对象（根据账号主键）
     *
     * @param relativeAccountRolePO
     * @return
     */
    int updateByAccountId(RelativeAccountRolePO relativeAccountRolePO);

    /**
     * 更新对象（根据角色主键）
     *
     * @param relativeAccountRolePO
     * @return
     */
    int updateByRoleId(RelativeAccountRolePO relativeAccountRolePO);
}
